#!/bin/bash

# 检查是否提供了虚拟机名称作为参数
if [ $# -ne 1 ]; then
    echo "Usage: $0 <vm_name>"
    exit 1
fi

# 从命令行参数获取虚拟机名称
VM_NAME=$1

# 源镜像文件路径
SOURCE_IMG="/root/cirros.qcow2"
# 目标镜像存储路径
TARGET_IMG_DIR="/var/lib/libvirt/images/"
# 目标镜像文件名
TARGET_IMG="${VM_NAME}.img"
# 基础XML配置文件路径
BASE_XML="/root/vmbase.xml"
# 修改后的XML配置文件名
TARGET_XML="${VM_NAME}.xml"

# 复制源镜像到目标目录
cp "$SOURCE_IMG" "$TARGET_IMG_DIR" &> /dev/null

# 创建新的qcow2镜像文件
cd "$TARGET_IMG_DIR"
qemu-img create -F qcow2 -b "cirros.qcow2" -f qcow2 "${TARGET_IMG}" 20G &> /dev/null
cd -

# 替换XML配置文件中的主机名，并创建新的XML配置文件
sed -r "s,(#){5},${VM_NAME}," "$BASE_XML" > "$TARGET_XML"

# 定义新的虚拟机
virsh define "$TARGET_XML"